package YAVMM::HostDB;
use Moose;

with 'MooseX::Object::Pluggable';

our $VERSION = '0.0.1';

has 'settings' => (
    is        => 'rw',
    does      => 'YAVMM::Settings',
    required  => 1,
);

sub _not_supported {
    my $self = shift;

    my @caller = caller(1);

    die YAVMM::Error::Guest->new(
        error => "$caller[3] action is not supported by ".$self->_original_class_name
    );
}

__PACKAGE__->meta->make_immutable;
1;

__END__

=head1 NAME

YAVMM::HostDB - Role for databases which store host information

=head1 MEMBERS

=head2 settings

B<Type:> YAVMM::Settings

B<Required:> Yes

=head1 METHODS

=head2 add_host(YAVMM::Host $new_host)

=head2 YAVMM::Host $host | Undef = get_host(Str $name)

=head2 update_host(YAVMM::Host $host, YAVMM::Host $new_host)

=head2 delete_host(YAVMM::Host $host)

=head2 get_hosts(Str $cluster?)

=head2 [Str] = get_clusters()

=head2 ??? = get_host_stats(YAVMM::Host $host)

